前回は、一括投資を複利計算し、将来資産額を計算する関数を作成しました。
まずは次のコードです。
def asset_total(asset,rate,years):
rate_100=rate/100
total=asset*(1+rate_100)**years
return round(total)
この関数で、一括投資の複利計算はできるようになりました。
しかし、このままでは実際の資産運用には少し物足りません。
積立機能も追加することにしました
私自身、普段は一括投資だけではありません。
毎月の積立投資も続けています。
そこで、資産シミュレーターも積立に対応させることにしました。
この形にしておけば、
- 初期投資額を0円にすると積立投資のみ
- 毎月積立額を0円にすると一括投資のみ
- 両方入力すると一括投資+積立投資
という3つの使い方ができます。
より実用的なアプリになりそうです。
変数名も分かりやすく変更
今回は、変数名も見直しました。
最初は「asset」という名前を使っていました。
しかし、あとからコードを見返したときに、「現在の資産」なのか「最初に投資する金額」なのか分かりにくいと感じました。
そこで、次のように変更しました。
asset→asset_startmonth_12→month_total
名前を見ただけで意味が分かるようになりました。
変数名を工夫することも、読みやすいコードを書くためには大切だと感じました。
積立機能を追加したコード
今回完成したコードはこちらです。
def asset_last(asset_start,monthly,rate,years):
rate_100=rate/100
rate_monthly=rate_100/12 #月利を計算
month_total=years*12 #総月数を計算
if rate_100 == 0:
total=asset_start+(monthly*month_total)
else:
total=(asset_start*(1+rate_100)**years) + (
monthly*((1+rate_monthly)**month_total-1)/rate_monthly)
return round(total)
print(f"{asset_last(1000000,10000,5,10):,}円") #入力金額は例として入力してます
初期投資額と積立投資額を合算して複利計算できるようになりました。
これで実際の投資スタイルに近いシミュレーションができます。
利回り0%のエラー対策
積立部分では、月利で割る計算をしています。
そのため、利回りが0%の場合は0で割ることになり、エラーが発生します。
そこで、条件分岐を追加しました。
if rate_100 == 0:
total = asset_start + (monthly * month_total)
利回りが0%なら、運用益はありません。
そのため、初期投資額と積立金額の合計だけを計算します。
小さな修正ですが、安心して使えるプログラムになりました。
結果を見やすく表示
計算結果は3桁ごとにカンマを付けるようにしました。
print(f"{asset_last(1000000,10000,5,10):,}円")
表示結果はこちらです。
3,185,237円
数字が大きくなっても、とても見やすくなりました。
Tkinter版でも、この表示方法をそのまま使えそうです。
まとめ
今回は、一括投資だけだった資産シミュレーターを積立投資にも対応させました。
また、変数名を見直しました。
さらに、利回り0%の場合のエラー対策も追加しました。
少しずつですが、実際に使えるアプリへ近づいています。
次回は、年ごとの資産推移を計算する関数を作成します。
グラフ表示に必要なデータを作り、Tkinterアプリをさらに完成へ近づけていきます。




コメント